package main

import "fmt"

// 切片拥有 长度 和 容量。
// 切片的长度就是它所包含的元素个数。
// 切片的容量是从它的第一个元素开始数，到其底层数组元素末尾的个数。
// 可以通过重新切片来扩展一个切片，给它提供足够的容量。
func main() {
	s := []int{1, 2, 3, 4, 5, 6}
	// 截取切片使其长度为 0
	s = s[:0]
	printSilce(s)
	// 重新切片,拓展其长度
	s = s[:4]
	printSilce(s)
	// 舍弃前两个值
	s = s[2:]
	printSilce(s)
}

// 切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。
func printSilce(s []int) {
	fmt.Printf("len=%d cap=%d %v\n", len(s), cap(s), s)
}
